#include <iostream>
#include <string>
#include <vector>
#include <algorithm> // 算法头文件
using namespace std;

// 声明数据对象
typedef struct Elenemt_data
{
    string name; // 姓名
    string sex;  // 性别
    int age;     // 年纪
    int id;      // 学号
    int sco;     // 成绩
} Elenemt_data;

Elenemt_data data[10] =
    {
        {"张1", "男", 18, 1, 59},
        {"张2", "男", 18, 1, 59},
        {"张3", "男", 18, 1, 59},
        {"张4", "男", 18, 1, 59},
        {"张5", "男", 18, 1, 59},
        {"张6", "男", 18, 1, 59},
};

void print_Elenemt_data(Elenemt_data print_data)
{
    cout << "姓名:" << print_data.name << "   ";
    cout << "性别:" << print_data.sex << "   ";
    cout << "年纪:" << print_data.age << "   ";
    cout << "学号:" << print_data.id << "   ";
    cout << "成绩:" << print_data.sco << endl;
    return;
}

Elenemt_data func(Elenemt_data data)
{
    if (data.sco > 50 && data.sco < 60)
    {
        data.sco = 60;
    }

    return data;
}

int main(int argc, char const *argv[])
{
    vector<Elenemt_data> v;
    for (size_t i = 0; i < 6; i++)
    {
        v.push_back(data[i]);
    }

    for_each(v.begin(), v.end(), print_Elenemt_data);

    vector<Elenemt_data> V_2(v.size());

    transform(v.begin(), v.end(), V_2.begin(), func);

    for_each(V_2.begin(), V_2.end(), print_Elenemt_data);

    return 0;
}